// /*----------------------------------------------------------------
//     设计要点:
//       1.分离数据通道:DeviceBase.cpp
//       2.分离协议实现:PacketBase.cpp
//       3.分离复杂交互逻辑的实现：ProcessBase.cpp
// -----------------------------------------------------------------*/
// #include <string>
// #include <vector>
// #include <iostream>
// using namespace std;

// #include "LinkBase.h"
// #include "PacketBase.h"
// #include "ProcessBase.h"

// class ControllerBase
// {

// private:
//     LinkBase link;  // 设备类,用于实现数据通道的驱动设备
//     vector<PacketBase> vec_packets;  // 协议类，用于多层协议的实现，主要为:解包，组包
//     vector<ProcessBase> vec_process; // 处理类，用于实现基于协议的复杂控制逻辑

// public:
//     ControllerBase();
//     ~ControllerBase();

//     //------配置接口------//
//     ControllerBase &add_link(LinkBase &dev);
//     ControllerBase &add_packet(PacketBase &pat);
//     ControllerBase &add_process(ProcessBase &proc);

//     //------基础功能------//
//     bool start(const char*arg); // 启动controller功能:
//                   // 1.启动device连接 2.对数据进行监听，并按packet列表进行数据过滤 3.启动复杂逻辑处理流程
//     bool stop();  //停止controller功能

//     //------拓展功能------//
// };


// ControllerBase::ControllerBase(){}
// ControllerBase::~ControllerBase(){}

// ControllerBase& ControllerBase::add_link(LinkBase &l){this->link = l;return *this; }
// ControllerBase& ControllerBase::add_packet(PacketBase &packet){this->vec_packets.push_back(packet);return *this; }
// ControllerBase& ControllerBase::add_process(ProcessBase &proc){this->vec_process.push_back(proc);return *this; }



// bool ControllerBase::start(const char*arg)
// {
//  //1.打开设备端口
//  if(this->link.open(arg) == false)
//  {
//     cout << "无法打开设备:" << string(this->link.name()) << " 设备信息:" << string(this->link.info()) << endl;
//  }

//  //2.创建任务监听数据包，并处理协议数据

//  //3.创建任务启动用户处理

// }

